/*
 * Bonus.cpp
 *
 *  Created on: 11/06/2013
 *      Author: Juliansci
 */

#include "Bonus.h"
#include "../../constantes.h"
#include <sstream>

#include "BonusBomba.h"
#include "BonusGolem.h"
#include "BonusHielo.h"
#include "BonusMagia.h"
#include "BonusLampara.h"
#include "BonusMapa.h"
#include "BonusVelocidad.h"
#include "BonusVida.h"

int Bonus::identificador = 0;

Bonus::Bonus() {
	this->id = Bonus::identificador;
	Bonus::identificador++;
}

list<pair<string, string>*> Bonus::obtenerImagenesBonus() {
	list<pair<string, string>*> listaImagenesBonus;
	pair<string, string>* imagenBonusVelocidad = new pair<string, string>(
			"bonusVelocidad", IMAGEN_BONUS_VELOCIDAD);
	pair<string, string>* imagenBonusVida = new pair<string, string>(
			"bonusVida", IMAGEN_BONUS_VIDA);
	pair<string, string>* imagenBonusMagia = new pair<string, string>(
			"bonusMagia", IMAGEN_BONUS_MAGIA);
	pair<string, string>* imagenBonusMapa = new pair<string, string>(
			"bonusMapa", IMAGEN_BONUS_MAPA);
	pair<string, string>* imagenBonusLampara = new pair<string, string>(
			"bonusLampara", IMAGEN_BONUS_LAMPARA);
	pair<string, string>* imagenBonusBomba = new pair<string, string>(
			"bonusBomba", IMAGEN_BONUS_BOMBA);
	pair<string, string>* imagenBonusGolem = new pair<string, string>(
			"bonusGolem", IMAGEN_BONUS_GOLEM);
	pair<string, string>* imagenBonusHielo = new pair<string, string>(
			"bonusHielo", IMAGEN_BONUS_HIELO);

	listaImagenesBonus.push_back(imagenBonusVelocidad);
	listaImagenesBonus.push_back(imagenBonusVida);
	listaImagenesBonus.push_back(imagenBonusMagia);
	listaImagenesBonus.push_back(imagenBonusMapa);
	listaImagenesBonus.push_back(imagenBonusLampara);
	listaImagenesBonus.push_back(imagenBonusBomba);
	listaImagenesBonus.push_back(imagenBonusGolem);
	listaImagenesBonus.push_back(imagenBonusHielo);

	return listaImagenesBonus;
}

string Bonus::getNombre() {
	return this->nombre;
}

string Bonus::serialize() {
	stringstream ss;
	ss << this->getId() << "|" << this->getNombre() << "|" << this->x << "|"
			<< this->y << "|";
	string data = ss.str();
	return data;
}

void Bonus::setCoordenadas(int x, int y) {
	this->x = x;
	this->y = y;
}


pair<int, int> Bonus::getCoordenadas() {
	pair<int, int> coordenadas(this->x, this->y);
	return coordenadas;
}


void Bonus::setId(int id){
	this->id = id;
}

int Bonus::getId(){
	return this->id;
}
